#include <stdio.h>

int main(){
    int p = 12306;
    int *p1; // 指针
    int p2[4] = {1, 2, 3, 4};
    int *p4[4];
    int (*p3)[4];
    long b;
    p2[0] = p;
    p4[0] = &p;
    
    int (*pointer_1) = &p;
    printf("p is %d\n", *pointer_1);
    printf("p3 is %p\n", p3);
    printf("*p3 is %p\n", *p3);
    printf("p3 + 1 is %p\n", p3 + 1);
    printf("*p3 + 1 is %p \n", *p3 + 1);

    printf("p4 is %p\n", p4);
    printf("p4 + 1 is %p\n", p4 + 1);

    int** p11 = p4;
    printf("p11 is %p\n", p11);
    printf("p11 + 1 is %p\n", p11 + 1);
    (*p3)[0] = 1;
    (*p3)[1] = 2;
    (*p3)[2] = 3;
    (*p3)[3] = 4;

    printf("%d\n", (*p3)[0]);
    printf("%d\n", (*p3 + 1)[0]);
    printf("%d\n", (*p3 + 2)[0]);
    printf("%d\n", (*p3 + 3)[0]);

    int *wild = &p;
    printf("Wild pointer value is %d\n", *(wild + 1));
    getchar();
}